Existence pole v tabulce (IB)

Otázka od: PeJaSoft

25. 9. 2002 11:28

Zdravim,

da se nejak jednoduse zjistit, zda v dane tabulce existuje pole? Napadl me
zpusob pres SELECT z tabulky, tusim RDB$neco_fields, WHERE
(RDB$tustim_tablename = nazev tabulky) a (RDB$necojako_fieldname = nazev
pole).
Pokud bude vysledek.RecordCount > 0, tak tam existuje.

Existuje neco jednodussiho?

Jedna se o IB/FB a DBX.

Diky za radu.

Petr Jarkovsky

Odpovedá: Ondrej Kelle

25. 9. 2002 11:17

> da se nejak jednoduse zjistit, zda v dane tabulce existuje
> pole? Napadl me
> zpusob pres SELECT z tabulky, tusim RDB$neco_fields, WHERE
> (RDB$tustim_tablename = nazev tabulky) a
> (RDB$necojako_fieldname = nazev
> pole).
> Pokud bude vysledek.RecordCount > 0, tak tam existuje.

Ano, napriklad takto:

select rdb$field_name from rdb$relation_fields where (rdb$relation_name =
'MYTABLENAME') and (rdb$field_name = 'MYFIELDNAME')

HTH
TOndrej

Odpovedá: Martin Schayna

25. 9. 2002 14:19

----- Original Message -----
From: "PeJaSoft" <pejasoft@volny.cz>
> da se nejak jednoduse zjistit, zda v dane tabulce existuje pole? Napadl me
> zpusob pres SELECT z tabulky, tusim RDB$neco_fields, WHERE
> (RDB$tustim_tablename = nazev tabulky) a (RDB$necojako_fieldname = nazev
> pole).

To je jediny zpusob, pokud nejake komponenty pro pristup k IB/FB
poskytuji jednodussi zpusob, delaji to interne take takto.

Abys to nemusel opakovat, muzes si stahnout vsechny fieldy a
cachovat na klientovi.

select RDB$FIELD_NAME
  from RDB$RELATION_FIELDS
  where RDB$RELATION_NAME = :tabulka